import enum


class CountryEnum(enum.Enum):
    country = ("country", "country", "country")
    detail = ("detail", "detail", "detail")
    bin_numbers = ("bin_numbers", "total of BIN numbers", "bin_numbers")
    visa = ("visa", "Visa", "visa")
    amex = ("amex", "Amex", "amex")
    master_card = ("master_card", "MasterCard", "master_card")
    discover = ("discover", "Discover", "discover")
    other_brands = ("other_brands", "Other Brands", "other_brands")
    country_abbr = ("country_abbr", "abbr", "country_abbr")
    create_time = ("create_time", "create time", "create_time")
    update_time = ("update_time", "update time", "update_time")

    def __init__(self, attr, desc_, value):
        self._attr = attr
        self._desc_ = desc_
        self._value = value

    def __repr__(self):
        return f'CountryEnum({self._attr}, {self._desc_}, {self._value})'

    @property
    def attr(self):
        return self._attr

    @attr.setter
    def attr(self, new_attr):
        self._attr = new_attr

    @property
    def desc_(self):
        return self._desc_

    @desc_.setter
    def desc_(self, new_desc):
        self._desc_ = new_desc

    @property
    def value(self):
        return self._value

    @value.setter
    def value(self, new_value):
        self._value = new_value

    @staticmethod
    def getDescList():
        return [item.desc_ for item in CountryEnum]

    @staticmethod
    def getValuesStr():
        return ','.join([item.value for item in CountryEnum])

    @staticmethod
    def getValuesList():
        return [item.value for item in CountryEnum]